Self-adapting virtual small keyboard apparatus and method

ABSTRACT

A method, apparatus and computer-usable medium for implementing a virtual keyboard for use with small input devices. A circular keyboard can be graphically displayed, in response to a user input by a user via a small input device. A circular and centrally located key can be graphically located and displayed within the center of the circular keyboard, wherein character keys radiate outward from the centrally located key (i.e., the “central key”). Character keys that are most commonly utilized by the user are preferably located closed to the circular and centrally located key within the circular keyboard. Character keys least commonly utilized by the user are preferably located at the edges of the keyboard, thereby permitting the circular keyboard to function as a self-adapting virtual keyboard for use with small input devices based on the usage of the keyboard by the user.

TECHNICAL FIELD

Embodiments are generally related to data-processing systems andmethods. Embodiments also relate in general to the field of computersand similar technologies, and in particular to software and hardwarecomponents utilized in this field. In addition, embodiments relate touser input devices, such as keyboards, keypads, and so forth.

BACKGROUND OF THE INVENTION

With the development of compacting mobile computing technology, such asPDA (Personal Digital Assistant) devices, cellular telephones, portablemedia players, and so forth, current mobile devices are equipped withvarious functions, such as internet browsing, sending emails, camera, orgames. As the functions of the mobile computing devices expand, theinput interface becomes a critical issue. For example, the dimensions ofcurrent mobile devices tend to be minimized, and therefore the inputinterface is limited to number keyboards only or even several functionkeys. While the user intends to enter various alphabetic and numericalfunctions, such as letters, numbers, symbols, emoticons, etc., the onlyavailable approach is to enter via those number keyboards. Usually, oneparticular number key will represent several alphabets, and the user hasto select the desired alphabet, which is an inefficient andtime-consuming process often involving entering data into an optionsscreen to change back and forth among the alphabets. Moreover, currentmobile computing devices are often provided, for example, with gamingoptions and other applications such as streaming video and interactivetexting. The keyboard configuration required for game playing, forexample, is usually different from that of the conventional mobilecomputing device. The user, however, will also be restricted to thecurrent available number keyboards while playing the game or utilizingan application via the mobile computing device, which significantlydiscourages the user from continued use of the application.

Additionally, user input areas for small portable devices such as cellphones, PDAs and media devices are inefficient and prone to input error.For most mobile devices, a standard QWERTY keyboard apparatus (virtualor physical) can be used for input. Such a keyboard was designed for twohanded input with spacing between keys matching that of spacing betweenhuman fingers. Various layouts with small keys or multiple displays havebeen implemented in small devices; however, these are usuallyadaptations of the QWERTY keyboard layout and as such not optimized forinput with less than two hands.

The optimization of keyboard layout for mobile devices should take intoaccount research into the functioning of the human eye and humaninformation processing. The following except is offered as a reference:

“From physiological studies we know several basic facts about how theeye processes information and about the physical constraints that limithow this information is presented to the brain. During a fixation, theeye has access to three regions for viewing information: the foveal,parafoveal, and peripheral. The foveal region is the area that we thinkof as being in focus and includes 2 degrees of visual angle around thepoint of fixation, where 1 degree is equal to three or four letters(thus, six to eight letters are in focus). The parafoveal region extendsto about 15 to 20 letters, and the peripheral region includes everythingin the visual field beyond the parafoveal region. The fovea is concernedwith processing detail, with anything beyond producing a marked drop inacuity; words presented to locations removed from the fovea are moredifficult to identify” (Rayner & Sereno, 1994). A copy of the unabridgedarticle is available at the following website as a reference:

http://www.readingonline.org/research/eyemove.html

Most, if not all, input apparatuses for small devices are variations ofthe standard keyboard or the number pad. These input apparatuses performpoorly when operated with one or two fingers as required by spaceconstrained mobile devices. Circular and semi-circular inputsapparatuses are known in the art; however these apparatuses are designedfor two finger or greater input and lack the dynamic rearrangementfeatures required for efficient input on mobile devices.

Therefore, there is a need for an improved mobile computing inputinterface that a user can utilize more conveniently. There is also aneed for an improved input interface that facilitates the minimizationof the mobile computing device. It is believed that the embodimentsdescribed in greater detail herein offer a solution to these currentdrawbacks.

BRIEF SUMMARY

The following summary is provided to facilitate an understanding of someof the innovative features unique to the present invention and is notintended to be a full description. A full appreciation of the variousaspects of the embodiments disclosed herein can be gained by taking theentire specification, claims, drawings, and abstract as a whole.

It is, therefore, one aspect of the present invention to provide for animproved data-processing method, system and computer-usable medium.

It is another aspect of the present invention to provide for a method,system and computer-usable medium for providing a virtual self-adaptingkeyboard.

It is a further aspect of the present invention to provide for a method,system and computer-usable medium for providing a circular keyboard foruse with small input devices.

The aforementioned aspects and other objectives and advantages can nowbe achieved as described herein. A method, apparatus and computer-usablemedium are described herein for implementing virtual keyboards for usewith small input devices. A circular keyboard can be graphicallydisplayed, in response to a user input by a user via a small inputdevice. A circular and centrally located key can be graphicallypositioned and displayed within the center of the circular keyboard,wherein character keys radiate outward from the circular and centrallylocated key (i.e., the “central key”) Character keys that are mostcommonly utilized by the user are preferably located closer to thecircular and centrally located key within the circular keyboard.Character keys least commonly utilized by the user are preferablylocated at the edges of the keyboard, thereby permitting the circularkeyboard to function as a self-adapting virtual keyboard for use withsmall input devices based on the usage of the keyboard by the user.

BRIEF DESCRIPTION OF THE DRAWINGS

The accompanying figures, in which like reference numerals refer toidentical or functionally-similar elements throughout the separate viewsand which are incorporated in and form a part of the specification,further illustrate the present invention and, together with the detaileddescription of the invention, serve to explain the principles of thepresent invention.

FIG. 1 illustrates a schematic view of a computer system in which thepresent invention may be embodied;

FIG. 2 illustrates a schematic view of a software system including anoperating system, application software, and a user interface forcarrying out the present invention;

FIG. 3 depicts a graphical representation of a network of dataprocessing systems in which aspects of the present invention may beimplemented;

FIG. 4 illustrates a virtual keyboard apparatus that can be adapted foruse with a small input device in order to improve the speed and accuracyof user input to such a small input device, in accordance with apreferred embodiment;

FIG. 5 illustrates a small input device adapted for use with the virtualkeyboard apparatus depicted in FIG. 4, wherein the small input deviceincludes a display screen and a rigid shell in accordance with apreferred embodiment; and

FIGS. 6, 7, and 8 respectively illustrate flow charts depicting methodsfor implementing the virtual keyboard apparatus of FIG. 4, in accordancewith a preferred embodiment.

DETAILED DESCRIPTION

The particular values and configurations discussed in these non-limitingexamples can be varied and are cited merely to illustrate at least oneembodiment and are not intended to limit the scope of such embodiments.

FIGS. 1-3 are provided as exemplary diagrams of data processingenvironments in which embodiments of the present invention may beimplemented. It should be appreciated that FIGS. 1-3 are only exemplaryand are not intended to assert or imply any limitation with regard tothe environments in which aspects or embodiments of the presentinvention may be implemented. Many modifications to the depictedenvironments may be made without departing from the spirit and scope ofthe present invention.

As depicted in FIG. 1, the present invention may be embodied in thecontext of a data-processing apparatus 100 comprising a centralprocessor 101, a main memory 102, an input/output controller 103, akeyboard 104, a pointing device 105 (e.g., mouse, track ball, pendevice, or the like), a display device 106, and a mass storage 107(e.g., hard disk). Additional input/output devices, such as a printingdevice 108, may be included in the data-processing apparatus 100 asdesired. As illustrated, the various components of the data-processingapparatus 100 communicate through a system bus 110 or similararchitecture. It can be appreciated that data-processing apparatus 100may implemented in the context, a desktop computer, computerworkstation, a server, a laptop computer, and any number of small inputdevices, such as mobile computing devices, including cellulartelephones, PDA (Personal Digital Assistant), portable medial players,and so forth.

Illustrated in FIG. 2, a computer software system 150 is provided fordirecting the operation of the data-processing apparatus 100. Softwaresystem 150, which is stored in system memory 102 and on disk memory 107,generally includes a kernel or operating system 151 and a shell orinterface 153. One or more application programs, such as applicationsoftware 152, may be “loaded” (i.e., transferred from storage 107 intomemory 102) for execution by the data-processing apparatus 100. Thedata-processing apparatus 100 receives user commands and data throughuser interface 153; these inputs may then be acted upon by thedata-processing apparatus 100 in accordance with instructions fromoperating module 151 and/or application module 152.

The interface 153, which is preferably a graphical user interface (GUI),also serves to display results, whereupon the user may supply additionalinputs or terminate the session. In an embodiment, operating system 151and interface 153 can be implemented in the context of a “Windows”system or another type of operation system such as, for example, Linux,etc. Application module 152, on the other hand, can includeinstructions, such as the various operations described herein withrespect to the various components and modules described herein, such as,for example, the method 600 depicted in FIG. 6.

FIG. 3 depicts a graphical representation of a network of dataprocessing systems in which aspects of the present invention may beimplemented. Network data processing system 300 is a network ofcomputers in which embodiments of the present invention may beimplemented. Network data processing system 300 contains network 302,which is the medium used to provide communications links between variousdevices and computers connected together within network data processingapparatus 100. Network 302 may include connections, such as wire,wireless communication links, or fiber optic cables.

In the depicted example, server 304 and server 306 connect to network302 along with storage unit 308. In addition, clients 310, 312, and 314connect to network 302. These clients 310, 312, and 314 may be, forexample, personal computers or network computers. Data-processingapparatus 100 depicted in FIG. 1 can be, for example, a client such asclient 310, 312, and/or 314. Thus, clients 310, 312, 314, can beimplemented as devices such as personal computers, computerworkstations, PDA's, cell phones, portable media players, and so forth.Alternatively, data-processing apparatus 100 can be implemented as aserver, such as servers 304 and/or 306, depending upon designconsiderations.

In the depicted example, server 304 provides data, such as boot files,operating system images, and applications to clients 310, 312, and 314.Clients 310, 312, and 314 are clients to server 304 in this example.Network data processing system 300 may include additional servers,clients, and other devices not shown. Specifically, clients may connectto any member of a network of servers which provide equivalent content.

In the depicted example, network data processing system 300 canconstitute the Internet with network 302 representing a worldwidecollection of networks and gateways that use the Transmission ControlProtocol/Internet Protocol (TCP/IP) suite of protocols to communicatewith one another. At the heart of the Internet is a backbone ofhigh-speed data communication lines between major nodes or hostcomputers, consisting of thousands of commercial, government,educational and other computer systems that route data and messages. Ofcourse, network data processing system 300 also may be implemented as anumber of different types of networks, such as for example, an intranet,a local area network (LAN), or a wide area network (WAN). Network 300can also be implemented in the context of a wireless network, such as acellular telephone network, Wi-Fi network, and so forth. Theconfigurations depicted in FIGS. 1-3 are intended to serve as anexample, and not as an architectural limitation for differentembodiments of the present invention.

The following description is presented with respect to embodiments ofthe present invention, which can be embodied in the context of adata-processing system such as data-processing apparatus 100, computersoftware system 150 and data processing system 300 and network 302depicted respectively FIGS. 1-3. The present invention, however, is notlimited to any particular application or any particular environment.Instead, those skilled in the art will find that the system and methodsof the present invention may be advantageously applied to a variety ofsystem and application software, including database management systems,word processors, and the like. Moreover, the present invention may beembodied on a variety of different platforms, including Macintosh, UNIX,LINUX, and the like. Therefore, the description of the exemplaryembodiments which follows is for purposes of illustration and notconsidered a limitation.

FIG. 4 illustrates a virtual keyboard apparatus 400 that can be adaptedfor use with a small input device (e.g., input device 500 depicted inFIG. 5) in order to improve the speed and accuracy of user input to sucha small input device, in accordance with a preferred embodiment. FIG. 5illustrates a small input device 500 adapted for use with the virtualkeyboard apparatus 400, and including a display screen 504 and a rigidshell 502 in accordance with a preferred embodiment. Note that in FIGS.4-5, identical or similar parts or elements are generally indicated byidentical reference numerals. Note that display screen 504 is analogousto the display device 106 depicted in FIG. 1, and the small input device500 is analogous to the data-processing apparatus 100 depicted in FIG.1, albeit on a smaller scale. It can be appreciated that the displayscreen 504 (and analogous display device 106) can be implemented as atouch screen display.

The virtual keyboard apparatus 400 can be implemented as a keyboarddisplayed on a small touch screen, a thumbstick operated keyboard withan associated visual display. The virtual keyboard apparatus 400 can bealternatively implemented in the context of keys with the ability todisplay characters (e.g., using known OLE technology or another method).Virtual keyboard apparatus 400 can be implemented with a substantiallycircular keypad 401, having keys such as number keys 1, 2, 3, etc. andletter keys A, B, C, D, etc., along with keys providing other characterssuch as colon, semi-colon, period, plus and minus signs, and so on. Acentrally located circular central key 410 can be implemented at thecenter of the circular keypad 401 with character keys radiating from thecentral key 410. The central key 410 may be, for example, a key such asa space key, an enter key, or another type of preferred key. In theembodiment disclosed herein, a space key is shown as the central key410. In other embodiments, however, the central key 410 may be anothertype of key, such as, for example, an enter key. The most commonlyutilized characters can be placed closest to the central key 410 and theleast commonly used characters positioned on the edge of the circularkeypad 401 forming a part of the overall virtual keyboard apparatus 400.Examples of such least commonly utilized keys, include, for example,shift key 402, delete key 404, enter key 406, and caps lock key 408. Fordevices that utilize a display and thumbstick (or button) for input, acursor can be programmed to return to the central key 410 after eachuser input.

The virtual keyboard apparatus 100 is therefore optimized for singlefinger input by placing the keys most commonly used around a centralpoint (e.g., central key 410) and placing the keys used less oftenfurther out from the center. In addition, this virtual keyboardapparatus 100 may modify the layout by relocating keys based on usagepatterns to optimize key placement for frequently used keys. Suchadaptive measures enable the user to input text on small devices fasterthan current known input apparatus.

A circular presentation for smaller key layouts is advantageous due tothe way the human eye sees information. It is known that the human eyefocuses on a singular point and darts around that point filling inbackground information. Standard keyboard layouts such as QWERTY andDvorak require memorization for maximum efficiency. Once a keyboardbecomes smaller than the hand, however, this system is inefficient andeven with memorization most users must look at the keys to use them. Byorganizing the keyboard such that the most common keys are arrangedcircularly around a point, memorization becomes unnecessary since theeye can find the keys quickly, and the distance traveled to any key isless than in known layouts.

Since most users must look at smaller device keyboards to quickly inputtext the benefits of memorization are lessened. Additional advantages ofthis approach include the adaptability for both different languages andoptimization for users that operate keyboards or communicate differentlyfrom the majority of known users. Further advantages of the virtualkeyboard apparatus 100 exist for task oriented input tasks, such asinteracting with HTML by leveraging current and future displaytechnology to dynamically modify the keyboard layout and optimallyplacing keys based on the user's current input type.

Most handheld devices do not conform to the rectangular shape of thestandard keyboard, yet they implement a standard keyboard layout forinput. This prevents optimization of both ergonomics, aesthetics and mayreduce screen space for entered text. The virtual keyboard apparatus400, on the other hand, can fit to almost any proportion or devicedesign and function. The virtual keyboard apparatus 400 is likely ofmost value to users who do not memorize keyboard layouts and do notinput on virtual devices with regularity. Such users likely includemobile device “Luddites” with a limited typing ability and who “hunt andpeck” when typing.

It is known that the human eye focuses on a singular point and fills ininformation around that point by rapidly scanning and processinginformation close to that point. Virtual keyboard apparatus 400 thusrepresents a significant enhancement over the standard layout of keys.Improved efficiency results from a keyboard layout that may be rapidlyprocessed by the human eye. By placing the keys most needed around thecentral point on the keyboard, the eye may locate a needed key fasterthan traditional keyboard layouts.

FIGS. 6, 7, and 8 respectively illustrate a flow chart of operationsdepicting methods 600, 601, and 603 for implementing the virtualkeyboard apparatus 400, in accordance with a preferred embodiment. Notethat methods 600, 601 and 603 can be implemented in the context of or inassociation with a computer-useable medium that contains a programproduct. The methods 600, 601, and 603 depicted in FIGS. 6, 7 and 8 canalso be implemented in a computer-usable medium containing a programproduct.

Programs defining functions on the present invention can be delivered toa data storage system or a computer system via a variety ofsignal-bearing media, which include, without limitation, non-writablestorage media (e.g., CD-ROM), writable storage media (e.g., hard diskdrive, read/write CD-ROM, optical media), system memory such as but notlimited to Random Access Memory (RAM), and communication media, such ascomputer and telephone networks including Ethernet, the Internet,wireless networks, and like network systems. It should be understood,therefore, that such signal-bearing media when carrying or encodingcomputer readable instructions that direct method functions in thepresent invention, represent alternative embodiments of the presentinvention. Further, it is understood that the present invention may beimplemented by a system having means in the form of hardware, software,or a combination of software and hardware as described herein or theirequivalent. Thus, the methods 600, 601 and 603 described herein can bedeployed as process software in the context of a computer system ordata-processing system as that depicted in FIGS. 1-3 and the virtualkeyboard apparatus 400 and small input device 500 respectivelyillustrated in FIG. 4-5.

A preferred implementation of methods 600, 601 and 603 generallyincludes two key areas for providing the virtual keyboard apparatus 400described above. The first area involves operations generally requiredfor keyboard layout. Such operations can include, but are not limited,to layout and application specific layout operations. The second areafor providing the virtual keyboard apparatus 400 involves keyboardoptimization. Thus, as indicated at block 602, the process begins.

KEYBOARD LAYOUT Configuration

As indicated at block 604, upon keyboard invocation (e.g., touchscreen), an operation can be initiated in which keys are placed on thescreen as previously described based on a particular default layout, asindicated thereafter at block 606. If the user has performed manualaugmentations to the layout, as illustrated at block 608, those settingsare retained as indicated at block 610, and the layout is affectedaccordingly and the operations continue. If the user had not performedmanual augmentations to the layout then the process continues withoutsuch manual augmentations. Additionally, if the keyboard optimizationcomponent has modified the layout, as depicted at block 612, thosesettings can be retained and keys laid out according to the optimizationcomponent as indicated at block 614. The process then continues, asindicated by continuation block 616.

Embodiments may vary, but in general user requested augmentations shouldtake precedence over automatic keyboard optimizations. A user may opt todisable optimization mutations on a per application basis and may stillmanually configure the key layout. A user may also desire to disable theoptimization feature in several applications. For example, in a gamingapplication the user may only need a limited number of keys and expectcertain keys to be in specific locations for input.

Layout

After acquiring the proper configuration, the keys of virtual keyboardapparatus 400 can be located in a circular fashion radiating outwardfrom the central space button or key 410 as depicted at block 618 inFIG. 7. Unless prevented by user augmentation, the most commonly usedkeys are placed closest to the center and the less commonly used keysare placed towards the edge of the keyboard as indicated at block 620.Embodiments may vary, but in the preferred embodiment, the shift andother modifier keys are preferably placed in the corners as indicated atblock 622 and as described earlier. Following the operation depicted atblock 622, an operation can be processed for determining if a touchscreen is being utilized as indicated at block 624. In touch screendevices with one screen for input and display, when a keyboard isrequired, the keyboard can be rendered onto the screen as indicatedthereafter at block 626, leaving enough room for textual display and thekeys activated for textual input.

Application Specific Layout

Each application may have a specific layout. For example, a portableHTML editing program may include a different optimal key layout comparedto that of a chat client. In the preferred embodiment, as the userswitches applications the keyboard layout may switch to an optimizedlayout for that application as indicated respectively at blocks 628 and630. The user may, however, modify the layout for individualapplications and the optimization component may optimize the layouts foreach application. The process then continues, as indicated at block 632

Keyboard Optimization

Keyboard optimization is illustrated by the method 603 depicted in FIG.8. As the user enters text, their key usage can be recorded and placedin a data storage location as indicated at block 634. Keystrokeanalytics for each application can be used to derive the individualuser's most used keys for each potential application specific keyboardlayout as depicted at blocks 636 and 638. The analytics may vary byembodiments, but most embodiments should detect the most frequently usedkeys, and the most frequently used key combinations as illustratedthereafter at block 640. Keys and key combinations used more oftenshould be placed closer to the center of the keyboard as described atblock 642. For example, a common key combination in a document writingprogram may be “t-h-e”, and as such those keys should be placed close tothe center of the keyboard. In the preferred embodiment a user mayenable or disabled the keyboard optimization component. The process canthen terminate, as depicted at block 644.

It will be appreciated that variations of the above-disclosed and otherfeatures and functions, or alternatives thereof, may be desirablycombined into many other different systems or applications. Also thatvarious presently unforeseen or unanticipated alternatives,modifications, variations or improvements therein may be subsequentlymade by those skilled in the art which are also intended to beencompassed by the following claims.

1. A method for providing a self-adapting virtual keyboard for use with small input devices: graphically displaying a circular keyboard, in response to a user input by a user to a small input device; locating a circular central key within a center of said circular keyboard, wherein character keys radiate outward from said circular central key; and locating character keys most commonly utilized by said user closest to said circular central key within said circular keyboard and character keys least commonly utilized by said user at the edges of said keyboard, thereby permitting said circular keyboard to function as a self-adapting virtual keyboard for use with small input devices based on a usage of said keyboard by said user.
 2. The method of claim 1 further comprising automatically arranging said character keys most commonly utilized by said user and character keys least commonly utilized by said user within said self-adapting virtual keyboard based on at least one default parameter.
 3. The method of claim 1 further comprising automatically arranging said character keys most commonly utilized by said user and character keys least commonly utilized by said user within said self-adapting virtual keyboard based on a user preference.
 4. The method of claim 1 further comprising automatically arranging said character keys most commonly utilized by said user and character keys least commonly utilized by said user within said self-adapting virtual keyboard based on a monitoring of a usage of said self-adapting virtual keyboard by said user.
 5. The method of claim 1 further comprising analyzing a usage of said keyboard by said user in order to determine said character keys most commonly utilized by said user and said character keys least commonly utilized by said user.
 6. The method of claim 1 wherein said circular keyboard is graphically displayed on a touch screen capable of receiving said user input from said user.
 7. The method of claim 1 wherein said circular keyboard comprises a thumbstick operated keyboard having a visual display.
 8. The method of claim 1 wherein said circular keyboard comprises a plurality of keys with the ability to graphically display varying character keys.
 9. A system for providing secure access to an application over an unsecure network, comprising: a processor; a data bus coupled to said processor; and a computer-usable medium embodying computer code, said computer-usable medium being coupled to said data bus, said computer program code comprising instructions executable by said processor and configured for: graphically displaying a circular keyboard, in response to a user input by a user to a small input device; locating a circular central key within a center of said circular keyboard, wherein character keys radiate outward from said circular central key; and locating character keys most commonly utilized by said user closest to said circular central key within said circular keyboard and character keys least commonly utilized by said user at the edges of said keyboard, thereby permitting said circular keyboard to function as a self-adapting virtual keyboard for use with small input devices based on a usage of said keyboard by said user.
 10. The system of claim 9, wherein said instructions are further configured for: automatically arranging said character keys most commonly utilized by said user and character keys least commonly utilized by said user within said self-adapting virtual keyboard based on at least one default parameter.
 11. The system of claim 9, wherein said instructions are further configured for: automatically arranging said character keys most commonly utilized by said user and character keys least commonly utilized by said user within said self-adapting virtual keyboard based on a user preference.
 12. The system of claim 9, wherein said instructions are further configured for: automatically arranging said character keys most commonly utilized by said user and character keys least commonly utilized by said user within said self-adapting virtual keyboard based on a monitoring of a usage of said self-adapting virtual keyboard by said user.
 13. The system of claim 9, wherein said instructions are further configured for: analyzing a usage of said keyboard by said user in order to determine said character keys most commonly utilized by said user and said character keys least commonly utilized by said user.
 14. The system of claim 9, wherein said circular keyboard is graphically displayed on a touch screen capable of receiving said user input from said user.
 15. A computer-usable medium embodying computer program code, said computer program code comprising computer executable instructions configured for: graphically displaying a circular keyboard, in response to a user input by a user to a small input device; locating a circular central key within a center of said circular keyboard, wherein character keys radiate outward from said circular central key; and locating character keys most commonly utilized by said user closest to said circular central key within said circular keyboard and character keys least commonly utilized by said user at the edges of said keyboard, thereby permitting said circular keyboard to function as a self-adapting virtual keyboard for use with small input devices based on a usage of said keyboard by said user.
 16. The computer-usable medium of claim 15, wherein said embodied computer program code further comprises computer executable instructions configured for: automatically arranging said character keys most commonly utilized by said user and character keys least commonly utilized by said user within said self-adapting virtual keyboard based on at least one default parameter.
 17. The computer-usable medium of claim 15, wherein said embodied computer program code further comprises computer executable instructions configured for: automatically arranging said character keys most commonly utilized by said user and character keys least commonly utilized by said user within said self-adapting virtual keyboard based on a user preference.
 18. The computer-usable medium of claim 15, wherein said embodied computer program code further comprises computer executable instructions configured for: automatically arranging said character keys most commonly utilized by said user and character keys least commonly utilized by said user within said self-adapting virtual keyboard based on a monitoring of a usage of said self-adapting virtual keyboard by said user.
 19. The computer-usable medium of claim 15, wherein said embodied computer program code further comprises computer executable instructions configured for: analyzing a usage of said keyboard by said user in order to determine said character keys most commonly utilized by said user and said character keys least commonly utilized by said user.
 20. The computer-usable medium of claim 15, wherein said circular keyboard is graphically displayed on a touch screen capable of receiving said user input from said user, said circular keyboard comprises a thumbstick operated keyboard having a visual display; and said circular keyboard comprises a plurality of keys with the ability to graphically display varying character keys. 